#ifndef WINDOWS_H
#define WINDOWS_H

//#include "GeneralConfig.h"
#include "Mymath.h"
#include "math.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "includes.h"

#define BESSELI_K_LENGTH    10
#define SELI_K_LENGTH 10

#define FLATTOPWIN_A0        0.215578995
#define FLATTOPWIN_A1        0.41663158
#define FLATTOPWIN_A2        0.277263158
#define FLATTOPWIN_A3        0.083578947
#define FLATTOPWIN_A4        0.006947368

#define NUTTALL_A0            0.3635819
#define NUTTALL_A1            0.4891775
#define NUTTALL_A2            0.1365995
#define NUTTALL_A3            0.0106411

#define BLACKMANHARRIS_A0    0.35875
#define BLACKMANHARRIS_A1    0.48829
#define BLACKMANHARRIS_A2    0.14128
#define BLACKMANHARRIS_A3    0.01168

#define PI 3.1415926

typedef enum
{
    DSP_ERROR = 0,
    DSP_SUCESS
}dspErrorStatus;

typedef enum
{
    Bartlett = 0,
    BartLettHann,
    BlackMan,
    BlackManHarris,
    Bohman,
    Chebyshev,
    FlatTop,
    Gaussian,
    Hamming,
    Hann,
    Kaiser,
    Nuttal,
    Parzen,
    Rectangular,
    Taylor,
    Triangular,
    Tukey
}winType;

//dspErrorStatus    taylorWin( INT32U N,  INT32U nbar, FP64 sll, FP64 **w);
dspErrorStatus    triangularWin( INT32U N, FP64 **w);
dspErrorStatus    tukeyWin( INT32U N, FP64 r, FP64 **w);
dspErrorStatus    bartlettWin( INT32U N, FP64 **w);
dspErrorStatus    bartLettHannWin( INT32U N, FP64 **w);
dspErrorStatus    blackManWin( INT32U N, FP64 **w);
dspErrorStatus    blackManHarrisWin( INT32U N, FP64 **w);
dspErrorStatus    bohmanWin( INT32U N, FP64 **w);
dspErrorStatus    chebyshevWin( INT32U N, FP64 r, FP64 **w);
dspErrorStatus    flatTopWin( INT32U N, FP64 **w);
dspErrorStatus    gaussianWin( INT32U N, FP64 alpha, FP64 **w);
 dspErrorStatus    hammingWin( INT32U N, FP64 **w);
dspErrorStatus    hannWin( INT32U N, FP64 **w);
dspErrorStatus    kaiserWin( INT32U N, FP64 beta, FP64 **w);
dspErrorStatus    nuttalWin( INT32U N, FP64 **w);
dspErrorStatus    parzenWin( INT32U N, FP64 **w);
dspErrorStatus    rectangularWin( INT32U N, FP64 **w);



#endif


